Events Listeners
SmartposRequired
Events.SmartposRequired Interface
You must provide a class implementing this interface when initializing the SDK for a smartPOS terminal (PAX/Telpo).
Code example
public final class EventHandler implements Events.SmartposRequired {
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
@Override
public void currentTransactionStatus(StatusInfo statusInfo, Device device) { ... }
@Override
public void endOfTransaction(TransactionResult transactionResult, Device device) { ... }
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Events
ConnectionStatusChangedCurrentTransactionStatusEndOfTransaction PendingResults
MposRequired
Events.MposRequired Interface
You must provide a class implementing this interface when initializing the SDK for an mPOS terminal (HiLite).
Code example
public final class EventHandler implements Events.MposRequired {
@Override
public void deviceDiscoveryFinished(List devices) { ... }
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
@Override
public void currentTransactionStatus(StatusInfo statusInfo, Device device) { ... }
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) { ... }
@Override
public void endOfTransaction(TransactionResult transactionResult, Device device) { ... }
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Events
ConnectionStatusChangedCurrentTransactionStatusEndOfTransaction PendingResults DeviceDiscoveryFinished SignatureRequired
PosRequired
Events.PosRequired Interface
You must provide a class implementing this interface when initializing the SDK when supporting both mPOS and SmartPOS terminals (PAX/Telpo & HiLite).
Code example
public final class EventHandler implements Events.PosRequired {
@Override
public void deviceDiscoveryFinished(List devices) { ... }
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
@Override
public void currentTransactionStatus(StatusInfo statusInfo, Device device) { ... }
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) { ... }
@Override
public void endOfTransaction(TransactionResult transactionResult, Device device) { ... }
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Events
ConnectionStatusChangedCurrentTransactionStatusEndOfTransaction PendingResults DeviceDiscoveryFinished SignatureRequired
Card Brand Display
Events.CardBrandDisplay Interface
An interface which needs to be implemented and added as a listener to get events providing information on the supported card brands and/or the card brand used during the transaction.
Methods
supportedCardBrands( List<CardBrands> cardBrandsList );
| Parameter | Notes |
|---|---|
cardBrandsList Required List <CardBrands> | A list containing the supported card brands |
readCard( CardBrands usedCard );
| Parameter | Notes |
|---|---|
usedCard Required CardBrands | Name of the card brand |
Code example
public final class EventHandler implements Events.CardBrandDisplay {
@Override
public void supportedCardBrands(List cardBrandsList) {
// Get supported card brands
}
@Override
public void readCard(CardBrands usedCard) {
// Get the used card brand
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Card Tokenization
Events.CardTokenization Interface
Implement this interface in order to receive events about the card tokenization.
Methods
cardTokenized( ResumeCallback callback, CardTokenizationData cardTokenizationData)
| Parameter | Notes |
|---|---|
callback Required ResumeCallback | Lets the SDK continue the operation |
cardTokenizationData Required CardTokenizationData | Object with the tokenization data. |
public final class EventHandler implements Events.CardTokenization {
@Override
public void cardTokenized(@NonNull ResumeCallback callback, @NonNull CardTokenizationData cardTokenizationData) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Connection status changed
Events.ConnectionStatusChanged Interface
Implement this interface in order to receive connection status changes.
Methods
connectionStatusChanged( ConnectionStatus status , Device device );
| Parameter | Notes |
|---|---|
status Required ConnectionStatus | New status of the connection |
device Required Device | The terminal which sent this information. |
Code example
public final class EventHandler implements Events.ConnectionStatusChanged {
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Current transaction status
Events.CurrentTransactionStatus Interface
Implement this interface in order to receive events about the current transaction.
Methods
currentTransactionStatus( StatusInfo status , Device device );
| Parameter | Notes |
|---|---|
status Required StatusInfo | The StatusInfo of the current transaction |
device Required Device | The terminal the request is sent from. |
Code example
public final class EventHandler implements Events.CurrentTransactionStatus {
@Override
public void currentTransactionStatus(StatusInfo info, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Device capabilities ready
Events.DeviceCapabilitiesReady Interface
Implement this interface in case the payment terminal needs to notify the SDK of its capabilities
Methods
deviceCapabilities( DeviceCapabilities capabilities , Device device );
| Parameter | Notes |
|---|---|
capabilities Required DeviceCapabilities | The capabilities of the terminal |
device Required Device | The terminal sending its capabilities |
Code example
public final class EventHandler implements Events.DeviceCapabilitiesReady {
@Override
public void deviceCapabilities(DeviceCapabilities capabilities, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Device discovery finished
Events.DeviceDiscoveryFinished Interface
Implement this interface in order to receive a list of available payment terminals. The event handler defined in this interface is invoked after calling the method searchDevices
Methods
deviceDiscoveryFinished( List<Device> devices );
| Parameter | Notes |
|---|---|
devices Required List <Device> | A list of available devices. |
Code example
public final class EventHandler implements Events.DeviceDiscoveryFinished {
@Override
public void deviceDiscoveryFinished(List<Device> devices) {
// Receiving a list of connectable payment terminals
foreach(Device device in devices) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
End of transaction
Events.EndOfTransaction Interface
Implement this interface to receive an event when a transaction is complete.
Methods
endOfTransaction( TransactionResult result , Device device );
| Parameter | Notes |
|---|---|
result Required TransactionResult | Holds all the information about the transaction. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.EndOfTransaction {
@Override
public void endOfTransaction(TransactionResult result, Device device) {
// Check the status of the transaction, save it, ...
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Hardware status changed
Events.HardwareStatusChanged Interface
Implement this interface in order to receive events when the hardware status changes.
Methods
hardwareStatusChanged( HardwareStatus status , Device device );
| Parameter | Notes |
|---|---|
status Required HardwareStatus | New status of the hardware. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.HardwareStatusChanged {
@Override
public void hardwareStatusChanged(HardwareStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Log
Events.Log Interface
An interface which needs to be implemented and added as a listener to receive logging information.
Extends
Code example
public final class EventHandler implements Events.Log {
@Override
public void deviceLogsReady(String logs, Device device) { ... }
@Override
public void onMessageLogged(LogLevel level , String message) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
MessageHandling
Events.MessageHandling Interface
An interface which needs to be implemented and added as a listener to get events which are called when the sdk asks the application to display or hide a message.
Methods
showMessage( String message , Boolean dismissible , int duration );
| Parameter | Notes |
|---|---|
message Required String | Message to display |
dismissible Required Boolean | A flag that indicates whether the message can be dismissed |
duration Required int | The timeout to hide the message. In milliseconds, if 0 is sent, the message should not auto dismiss. |
hideMessage( String message );
| Parameter | Notes |
|---|---|
message Required String | Message to hide |
Code example
public final class EventHandler implements Events.MessageHandling {
@Override
public void showMessage(String message, Boolean dismissible, int duration) {
// Show message for a 'duration' period (if duration = 0 DO NOT dismiss until hideMessage(String message) event is received) and make it dismissible if the input marks it as possible
}
@Override
public void hideMessage(String message) {
// Hide the message
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
On message logged
Events.OnMessageLogged Interface
Implement this interface to receive logs from the payment terminal. Methods
onMessageLogged( LogLevel level , String message );
| Parameter | Notes |
|---|---|
level Required LogLevel | The LogLevel of the logging |
message RequiredString | The log trace which was logged by the SDK. |
Code example
public final class EventHandler implements Events.OnMessageLogged {
@Override
public void onMessageLogged(LogLevel level, String message) {
// Process log trace
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
PhysicalKeyboardEvent
Events.PhysicalKeyboardEvent Interface
An interface which needs to be implemented and added as a listener to get events coming from the PAX A80 physical keyboard.
Methods
onKeyPressed( PaxA80Keys key );
| Parameter | Notes |
|---|---|
key Required PaxA80Keys | The name of the key that has been pressed |
Code example
public final class EventHandler implements Events.PhysicalKeyboardEvent {
@Override
public void onKeyPressed(String key) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
PendingResults
Events.PendingResults Interface
An interface which needs to be implemented and added as a listener to receive information about pending TransactionResults. In case of a communication failure between the SDK and the payment terminal there might be a result pending from the transaction which did not get sent to the SDK.
Code example
public final class EventHandler implements Events.PendingResults {
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Extends
PaymentProvider
Events.PaymentProvider Interface
An interface which needs to be implemented and added as a listener to receive all available events related to financial operations.
Extends
SignatureRequired EndOfTransaction OnMessageLogged CurrentTransactionStatus
PrinterEvents
Events.PrinterEvents Interface
An interface which needs to be implemented and added as a listener to get events coming from the printer.
Methods
printSuccess( );
printError(PrintError error);
| Parameter | Notes |
|---|---|
error Required PrintError | Enum detailing the reason of the error |
Code example
public final class EventHandler implements Events.PrinterEvents {
@Override
public void printSuccess() {
// Successful print action
}
@Override
public void printError(PrintError error) {
// Unable to perform print action due to error
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Report result
Events.ReportResult Interface
Implement this interface to receive an event when a report result from a getTransactionsReport is returned.
Methods
reportResult( TypeOfResult type , String report , DeviceStatus status , Device device );
| Parameter | Notes |
|---|---|
type Required TypeOfResult | The type of the report |
report Required String | The text of the report |
status Required DeviceStatus | The status of the device |
device Required Device | The terminal sending the report |
Code example
public final class EventHandler implements Events.ReportResult {
@Override
public void reportResult(TypeOfResult type, String report, DeviceStatus status, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Events
DeviceDiscoveryFinished SignatureRequired EndOfTransaction PendingResults
Signature required
Events.SignatureRequired Interface
The SignatureRequired interface must be implemented in order to receive an event when a card requires a signature as a verification method. This interface is only required for an Hilite integration, PAX and Telpo terminals automatically prompt for signature capture on the terminal.
Methods
signatureRequired( SignatureRequest request , Device device );
| Parameter | Notes |
|---|---|
request Required SignatureRequest | Holds the signature request. |
device RequiredDevice | The payment terminal. |
Code example
public final class EventHandler implements Events.SignatureRequired {
@Override
public void signatureRequired(SignatureRequest signatureRequest, Device device) {
// Save merchant receipt
String merchantReceipt = signatureRequest.getMerchantReceipt();
api.signatureResult(true);
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Status
Events.Status Interface
An interface which needs to be implemented and added as a listener to receive connection and transaction statuses.
Code example
public final class EventHandler implements Events.Status {
@Override
public void connectionStatusChanged(ConnectionStatus status, Device device) { ... }
@Override
public void hardwareStatusChanged(HardwareStatus status, Device device) { ... }
@Override
public void currentTransactionStatus(StatusInfo info, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Extends
ConnectionStatusChanged HardwareStatusChanged CurrentTransactionStatus
Transaction result ready
Events.TransactionResultReady Interface
Implement this interface in order to receive an event after a pending TransactionResult has been recovered from the payment terminal.
Methods
transactionResultReady( TransactionResult transactionResult , Device device );
| Parameter | Notes |
|---|---|
transactionResult Required TransactionResult | A TransactionResult is containing all information about the recovered transaction. |
device Required Device | The payment terminal. |
Code example
public final class EventHandler implements Events.TransactionResultReady {
@Override
public void transactionResultReady(TransactionResult transactionResult, Device device) { ... }
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);
Transaction started
Events.TransactionStarted Interface
Implement this interface in order to receive an event when a transaction is started through the Cloud API channel.
IMPORTANT NOTE: This interface is only available for cloud-enabled devices. See DeviceCapabilitiesReady interface.
Methods
transactionStarted( TransactionType transactionType , BigInteger amount , Currency currency, String transactionReference );
| Parameter | Notes |
|---|---|
transactionType Required TransactionType | Type of transaction started |
amount Required BigInteger | Amount in the minor unit of currency (f.ex. 1000 is 10.00 GBP) |
currency Required Currency | Currency of the transaction started |
transactionReference Required String | The transaction reference of the started transaction. transactionReference will be empty if the operation has not been started with one, or if it is an operation to which it does not apply (a tokenization, for example) |
Code example
public final class EventHandler implements Events.TransactionStarted {
//If the transactionReference has NOT been included in the request, it will be empty.
@Override
public void transactionStarted(TransactionType type, BigInteger amount, Currency currency, String transactionReference) {
// Notify the app user transaction has been started ...
}
}
// Remember to register the instance of this EventHandler:
this.api.registerEventsDelegate(eventHandlerInstance);